package com.kaizeli.website.service;

import com.kaizeli.website.pojo.dto.base.PageDTO;
import com.kaizeli.website.pojo.entity.CustomerDO;
import com.kaizeli.website.pojo.vo.CustomerVO;
import com.kaizeli.website.query.CustomerQuery;

import java.util.List;

/**
 * 客户服务接口
 */
public interface CustomerService {
    
    /**
     * 分页查询客户列表
     */
    PageDTO<CustomerVO> pageQuery(CustomerQuery query);
    
    /**
     * 根据ID查询客户详情
     */
    CustomerVO getById(Integer id);
    
    /**
     * 根据编码查询客户
     */
    CustomerVO getByCode(String code);
    
    /**
     * 新增客户
     */
    Integer save(CustomerDO customerDO);
    
    /**
     * 更新客户信息
     */
    Boolean update(CustomerDO customerDO);
    
    /**
     * 根据ID删除客户
     */
    Boolean deleteById(Integer id);
    
    /**
     * 根据状态查询客户列表
     */
    List<CustomerVO> listByStatus(String status);
    
    /**
     * 查询所有客户列表
     */
    List<CustomerVO> listAll();
    
    /**
     * 搜索客户
     */
    List<CustomerVO> search(String keyword);
}

